type token =
  | INT of (int)
  | PLUS
  | MINUS
  | MUL
  | DIV
  | MATCH
  | WITH
  | PIPE
  | ARROW
  | NEW_LINE
  | LPAREN
  | RPAREN
  | IDENT of (string)
  | FUN
  | FUN_ARROW
  | EOF

val main :
  (Lexing.lexbuf  -> token) -> Lexing.lexbuf -> Ast.appexp
